<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
  <script>
    const orders = [
  {
    id: 1,
    name: 'John Smith',
    address: '123 Main St',
    status: 'created',
    log: [
      {
        status: 'created',
        time: '2023-02-16 12:30:00'
      }
    ]
  },
  {
    id: 2,
    name: 'Jane Doe',
    address: '456 Second St',
    status: 'packed',
    log: [
      {
        status: 'created',
        time: '2023-02-16 10:00:00'
      },
      {
        status: 'packed',
        time: '2023-02-16 12:30:00'
      }
    ]
  },
  {
    id: 3,
    name: 'Bob Johnson',
    address: '789 Third St',
    status: 'shipped',
    log: [
      {
        status: 'created',
        time: '2023-02-15 10:00:00'
      },
      {
        status: 'packed',
        time: '2023-02-15 12:00:00'
      },
      {
        status: 'shipped',
        time: '2023-02-16 9:00:00'
      }
    ]
  }
]

//第一个函数
//这种方法动了原数组
/* const getOrdersByStatus=(a)=>{
  const obj=[]
  orders.forEach((item)=>{
    if(item.status===a){
    if(item.log.some((item1)=>item1.status===a)){
     item.log=item.log.filter((item1)=>item1.status===a);
      obj.push(item)
    }}
  })
  obj.sort((a,b)=>a.id-b.id)
  return obj
}
console.log(getOrdersByStatus('packed')); */

//第二个函数
const getOrderStatusHistory=(id)=>{
return  orders.find((item)=>item.id===id).log.sort((a,b)=>+new Date(a.time)-+new Date(b.time)).map(({time,status})=>`[${time}]  ${status}`).join('\n')
}
console.log( getOrderStatusHistory(3));
  </script>
</body>
</html>